# ifndef PARSE_STR
# define PARSE_STR

/**
  \brief: Recibe una cadena y la pica por un separador dado y deja cada parte
          en un arreglo de tipo DynArray.

  @param [in] str La cadena que se quiere picar.
  @param [in] separator El separador que define cada sub cadena nueva.
  @param [out] parsed_str El arreglo con cada subcadena extraída.

  @author: Alejandro Mujica
  */

inline void parse_str(const std::string & str, const char & separator,
                      DynArray<std::string> & parsed_str)
{
  size_t ipos = 0, lpos, pos = 0;
  while ((lpos = str.find(separator, ipos)) != std::string::npos)
    {
      parsed_str[pos++] = str.substr(ipos, lpos - ipos);
      ipos = lpos + 1;
    }
  lpos = str.size();
  parsed_str[pos] = str.substr(ipos, lpos - ipos);
}

# endif

